package org.yufan.service;

import com.github.pagehelper.PageInfo;

import java.util.List;

public interface BaseService<T> {

    /**
     * 根据id查询
     * @param id
     * @return
     */
    public T  queryById(Long id);

    /**
     * 根据指定的条件查询一个
     * @param t
     * @return
     */
    public T queryByWhere(T t);

    /**
     * 根据条件查询多个  不带分页
     * @param t
     * @return
     */
    public List<T> queryListByWhere(T t);

    /**
     * 根据条件查询多个 带分页
     * @param t
     * @return
     */
    public PageInfo<T> queryPageListByWhere(T t,int pageNum,int rows);

    /**
     * 查询所有
     * @return
     */
    public List<T>  getAll();

    /**
     * 保存
     * @param t
     */
    public void save(T t);

    /**
     * 修改
     * @param t
     */
    public void update(T t);

    /**
     * 删除
     * @param id
     */
    public void delete(Long id);

    /**
     * 根据条件批量删除
     * @param clazz
     * @param property
     * @param values
     */
    public void deleteByWhere(Class clazz,String property,List<Object> values);

}
